বর্তমানে হাজার খানেক প্রোগ্রামিং ভাষা প্রচলিত। যদিও সব ভাষা সমানভাবে জনপ্রিয় নয়। ভাষা যে রকমই হোক না কেন, কম্পিউটারের প্রসেসর 1 আর 0 ছাড়া কিছু বোঝে না। তাই বিভিন্ন ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে রূপান্তর করতে হয়। এই কাজটি করার জন্য বিশেষ প্রোগ্রাম তৈরি করা হয়, যাকে
বলে অনুবাদক প্রোগ্রাম। নিচে তিন ধরনের অনুবাদকের কথা বলা হলো:
অ্যাসেম্বলার (Assembler) : অ্যাসেম্বলি ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে অনুবাদ করে অ্যাসেম্বলার নামক একটি প্রোগ্রাম ।
উচ্চ স্তরের যেসব প্রোগ্রামিং ভাষা, সেগুলোকে মেশিন কোডে অনুবাদ করার কাজটি করার জন্য দু ধরনের প্রোগ্রাম রয়েছে— কম্পাইলার (Compiler) ও ইন্টারপ্রেটার (Interpreter)। প্রতিটি উচ্চ স্তরের প্রোগ্রামিং ভাষারই পৃথক কম্পাইলার অথবা ইন্টারপ্রেটার রয়েছে। এই দুই ধরনের অনুবাদক প্রোগ্রামের উদ্দেশ্য এক হলেও কাজের ধরনে কিছুটা ভিন্নতা রয়েছে।
কম্পাইলার (Compiler) : কম্পাইলার প্রথমে পুরো প্রোগ্রামটি পরীক্ষা করে দেখে যে এর ভাষার নিয়মকানুন (যাকে ইংরেজিতে বলে সিনট্যাক্স Syntax) ঠিক আছে কি না। যদি ঠিক থাকে, তখন সে পুরো প্রোগ্রামটি কম্পাইল করে মেশিন কোডে রূপান্তর করে। যেহেতু পুরো প্রোগামটি একবারে কম্পাইল করা হয় তাই প্রোগ্রামে কোনো ভুল থাকলে সব একসাথে দেখানো হয়। সে কারণে ভুলগুলো শুদ্ধ করা একটু জটিল। তবে কম্পাইল করার পর এই প্রোগ্রামগুলো অনেক দ্রুতগতিতে কাজ করে।
ইন্টারপ্রেটার (Interpreter) : ইন্টারপ্রেটার পুরো প্রোগ্রাম পরীক্ষা না করে প্রোগ্রামের প্রতিটি স্টেটমেন্ট (statement বা নির্দেশ) মেশিন কোডে রূপান্তর করে সেটিকে এক্সিকিউট করে। অর্থাৎ কোনো প্রোগ্রামে যদি দশটি স্টেটমেন্ট থাকে, তাহলে প্রথম স্টেটমেন্ট আগে মেশিন কোডে রূপান্তর হয়ে চলবে, তারপর দ্বিতীয় স্টেটমেন্ট, তারপর তৃতীয় স্টেটমেন্ট, এভাবে একে একে সব স্টেটমেন্ট এক্সিকিউট হবে। এ কারণে ভুল শুদ্ধ করা অনেক সহজ। কিন্তু একটি একটি করে স্টেটমেন্ট মেশিন কোডে রূপান্তরিত হয় বলে সময় তুলনামূলকভাবে বেশি লাগে।